{
    //ES5中的正则对象是怎么写的
    //第一种写法,"xyz"是字符串,"i"相当于修饰符
    let regex=new RegExp("xyz","i");

    //第二种写法,只接受一个正则表达式
    let regex2=new RegExp(/xyz/i);

    //test方法是prototype当中继承的,如果正则表达式当中匹配到这个字符串了话
    //就会返回true
    console.log(regex.test("xyz123"),regex2.test("xyz123"));

    //ES6当中新增的
    //第一个参数可以是一个正则表达式,第二个参数还是一个修饰符
    //这里,第二个参数的修饰符可以替代原来的正则表达式的修饰符(也就是第一个参数)
    let regex3=new RegExp(/xyz/i,"ig");

    //flags属性(从prototype继承的,是一个访问器属性,只有getter)
    //会返回这个正则表达式的修饰符是什么
    console.log(regex3.flags)

}

{
    //关于y修饰符
    let a="lollol";

    let a1=/(lol)+?/g;
    let a2=/(lol)+?/y;

    console.log(a1.sticky);
    console.log(a2.sticky);
}

{

    // console.log('无u修饰符',/^\uD83D/.test('\uD83D\uDC2A')); // true
    // console.log('有u修饰符',/^\uD83D/u.test('\uD83D\uDC2A')); // false


    // 大括号表示Unicode字符，只有加上u才能识别
    console.log(/\u0061/.test('\u0061')); // false



    console.log(/\u{61}/u.test('a')); // true
    console.log(/\u{20BB7}/u.test('\u5536\u57271')); // true


    // 点（.）字符不能识别码点大于0xFFFF的Unicode字符，必须加上u修饰符。
    let s = '𠮷';
    console.log('大于0xFFFF的Unicode字符',/^.$/.test(s)); // false
    console.log('使用u字符',/^.$/u.test(s)); // true



    // 使用u修饰符后，所有量词都会正确识别大于码点大于0xFFFF的Unicode字符。
    console.log('量词',/a{2}/.test('aa')); // true
    console.log('量词',/a{2}/u.test('aa')); // true
    console.log('量词',/𠮷{2}/.test('𠮷𠮷')); // false
    console.log('量词',/𠮷{2}/u.test('𠮷𠮷')); // true


}

